package com.atguigu.gulimall.product.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @className: CategoryEntity
 * @description: 商品三级分类实体类
 * @date: 2020/10/25
 * @author: cakin
 */
@Data
@TableName("pms_category")
public class CategoryEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 分类id
     */
    @TableId
    private Long catId;
    /**
     * 分类名称
     */
    private String name;
    /**
     * 父分类id
     */
    private Long parentCid;
    /**
     * 层级
     */
    private Integer catLevel;
    /**
     * 逻辑删除注解，value = "1"：表示未删除值，delval = "0"：表示删除值，配置这个的目的是覆盖全局配置，因为全局配置和这个相反
     * 是否显示[0-不显示，1显示]
     */
    @TableLogic(value = "1", delval = "0")
    private Integer showStatus;
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 图标地址
     */
    private String icon;
    /**
     * 计量单位
     */
    private String productUnit;
    /**
     * 商品数量
     */
    private Integer productCount;

    // 如果children的List为空（长度为0），则不携带到后端
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @TableField(exist = false) // 表示该字段在数据库中不存在，存储某个分类的子分类
    private List<CategoryEntity> children;
}
